package com.demo;


import org.junit.Test;

public class TestTry {

    /**
     * 多态
     */
    @Test
    public void DBTest1(){
        DataBase db=new DataBase();
        db.add(new CD("你的背包","陈奕迅",4,6,"伤感的离歌"));
        db.add(new CD("彩虹","周杰伦",4,7,"像看到彩虹一样的心情"));
        db.add(new DVD("霸王别姬","陈凯歌",160,"旧时代不被接受的爱情"));
        db.add(new DVD("英雄","张艺谋",120,"烂片"));
        db.list();
    }

    /**
     * cast 造型
     */
    @Test
    public void DBTest2(){
        //cast 造型
        String s="Hello";
        s = "Bye";

        // 向上造型
        CD cd = new CD("你的背包","陈奕迅",4,6,"伤感的离歌");
        Item item = new Item("aa",20,false,"bb");
        // 下面的代码编译错误：类型造型错误  子类不能直接造型成父类
        // cd = item;

        // 父类可以造型为子类 如下面的代码
        item=cd;

        //或者子类强制造型成父类
        // 没有上一句代码的话 会报java.lang.ClassCastException: com.Item cannot be cast to com.CD
        // 因为item没有管理CD类型的对象
        CD cd1=(CD)item;
    }
    //toString  equals
    @Test
    public void TestCD1(){
        CD cd = new CD("你的背包","陈奕迅",4,6,"伤感的离歌");
        System.out.println(cd+" cd test");
        CD cd1 = new CD("你的背包","陈奕迅",4,6,"伤感的离歌");
        System.out.println(cd.equals(cd1));

    }

}
